package pe.edu.sistemas.sisdiho.services;

import java.util.Iterator;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import pe.edu.sistemas.sisdiho.entities.Periodo;
import pe.edu.sistemas.sisdiho.entities.RegistroHorario;
import pe.edu.sistemas.sisdiho.repositories.PeriodoRepository;
import pe.edu.sistemas.sisdiho.repositories.ScheduleLaboRepository;
@Service
public class ScheduleLaboService {
	@Autowired
	private RecuperacionService recuperacionServ;
	
	@Autowired	
	private ScheduleLaboRepository scheduleRepository;
	
	@Autowired
	private PeriodoRepository periodoRepository;
	public List<RegistroHorario> obtenerLunes(){
		Periodo p = periodoRepository.obtenerUltimoPeriodo();		
		List<RegistroHorario> horarioAux=scheduleRepository.obtenerHorariosLunesLabo(p.getNombre());
		Iterator<RegistroHorario> iterador=horarioAux.iterator();
		while(iterador.hasNext()){
				RegistroHorario rh=(RegistroHorario)iterador.next();
				rh.setNombreDia(recuperacionServ.obtenerDia(rh.getDia()));
				String auxistr = rh.getEscuela();
				auxistr = auxistr.substring(21);
				rh.setEscuela(auxistr);
			}
		return horarioAux;
	}
	public List<RegistroHorario> obtenerMartes(){
		Periodo p = periodoRepository.obtenerUltimoPeriodo();
		List<RegistroHorario> horarioAux=scheduleRepository.obtenerHorariosMartesLabo(p.getNombre());
		Iterator<RegistroHorario> iterador=horarioAux.iterator();
		while(iterador.hasNext()){
				RegistroHorario rh=(RegistroHorario)iterador.next();
				rh.setNombreDia(recuperacionServ.obtenerDia(rh.getDia()));
				String auxistr = rh.getEscuela();
				auxistr = auxistr.substring(21);
				rh.setEscuela(auxistr);
			}
		return horarioAux;
	}
	public List<RegistroHorario> obtenerMiercoles(){
		Periodo p = periodoRepository.obtenerUltimoPeriodo();
		List<RegistroHorario> horarioAux=scheduleRepository.obtenerHorariosMiercolesLabo(p.getNombre());
		Iterator<RegistroHorario> iterador=horarioAux.iterator();
		while(iterador.hasNext()){
				RegistroHorario rh=(RegistroHorario)iterador.next();
				rh.setNombreDia(recuperacionServ.obtenerDia(rh.getDia()));
				String auxistr = rh.getEscuela();
				auxistr = auxistr.substring(21);
				rh.setEscuela(auxistr);
			}
		return horarioAux;
	}
	public List<RegistroHorario> obtenerJueves(){
		Periodo p = periodoRepository.obtenerUltimoPeriodo();
		scheduleRepository.obtenerHorariosJuevesLabo(p.getNombre());
		List<RegistroHorario> horarioAux=scheduleRepository.obtenerHorariosJuevesLabo(p.getNombre());
		Iterator<RegistroHorario> iterador=horarioAux.iterator();
		while(iterador.hasNext()){
				RegistroHorario rh=(RegistroHorario)iterador.next();
				rh.setNombreDia(recuperacionServ.obtenerDia(rh.getDia()));
				String auxistr = rh.getEscuela();
				auxistr = auxistr.substring(21);
				rh.setEscuela(auxistr);
			}
		return horarioAux;
	}
	public List<RegistroHorario> obtenerViernes(){
		Periodo p = periodoRepository.obtenerUltimoPeriodo();
		scheduleRepository.obtenerHorariosViernesLabo(p.getNombre());
		List<RegistroHorario> horarioAux=scheduleRepository.obtenerHorariosViernesLabo(p.getNombre());
		Iterator<RegistroHorario> iterador=horarioAux.iterator();
		while(iterador.hasNext()){
				RegistroHorario rh=(RegistroHorario)iterador.next();
				rh.setNombreDia(recuperacionServ.obtenerDia(rh.getDia()));
				String auxistr = rh.getEscuela();
				auxistr = auxistr.substring(21);
				rh.setEscuela(auxistr);
			}
		return horarioAux;
	}
	public List<RegistroHorario> obtenerSabado(){
		Periodo p = periodoRepository.obtenerUltimoPeriodo();
		scheduleRepository.obtenerHorariosSabadoLabo(p.getNombre());
		List<RegistroHorario> horarioAux=scheduleRepository.obtenerHorariosSabadoLabo(p.getNombre());
		Iterator<RegistroHorario> iterador=horarioAux.iterator();
		while(iterador.hasNext()){
				RegistroHorario rh=(RegistroHorario)iterador.next();
				rh.setNombreDia(recuperacionServ.obtenerDia(rh.getDia()));
				String auxistr = rh.getEscuela();
				auxistr = auxistr.substring(21);
				rh.setEscuela(auxistr);
			}
		return horarioAux;
	}
	public List<RegistroHorario> obtenerDomingo(){
		Periodo p = periodoRepository.obtenerUltimoPeriodo();
		scheduleRepository.obtenerHorariosDomingoLabo(p.getNombre());
		List<RegistroHorario> horarioAux=scheduleRepository.obtenerHorariosDomingoLabo(p.getNombre());
		Iterator<RegistroHorario> iterador=horarioAux.iterator();
		while(iterador.hasNext()){
				RegistroHorario rh=(RegistroHorario)iterador.next();
				rh.setNombreDia(recuperacionServ.obtenerDia(rh.getDia()));
				String auxistr = rh.getEscuela();
				auxistr = auxistr.substring(21);
				rh.setEscuela(auxistr);
			}
		return horarioAux;
	}

}
